Skip to content

Pin cpflow workflows to runner wait fix#761

Merged
justin808 merged 1 commit into
masterfrom
jg-codex/pin-runner-race-fix
Jun 3, 2026
Merged

Pin cpflow workflows to runner wait fix#761
justin808 merged 1 commit into
masterfrom
jg-codex/pin-runner-race-fix

Conversation

@justin808

@justin808 justin808 commented Jun 3, 2026

Copy link
Copy Markdown
Member

Summary

  • Pin generated cpflow GitHub workflow wrappers to merged upstream control-plane-flow commit d8877ca0c9c1d88947f322903e4a4344641029ba
  • Update generated/help docs to explain the temporary SHA covers production promotion hardening plus the release-runner timeout fix
  • Keep CPFLOW_VERSION unset so workflows build cpflow from the pinned upstream source

Why

The merged hardening PR deployed staging from master but timed out in the release phase: https://github.com/shakacode/react-webpack-rails-tutorial/actions/runs/26867270700

Control Plane showed the rails-runner cron job completed successfully from 2026-06-03T06:21:52Z to 2026-06-03T06:22:22Z, but cpflow kept polling for a runner replica until GitHub cancelled the job at 30 minutes. Upstream fix merged in shakacode/control-plane-flow#361 at d8877ca0c9c1d88947f322903e4a4344641029ba.

Verification

  • bin/conductor-exec ruby -e 'require "yaml"; Dir[".github/workflows/*.yml"].sort.each { |path| YAML.load_file(path); puts path }'
  • bin/conductor-exec bin/test-cpflow-github-flow ruby /private/tmp/control-plane-flow-docs.XP4Efz/bin/cpflow
  • git diff --check

Note

Low Risk
Mechanical ref bump in CI wrappers and documentation only; no application or runtime code changes.

Overview
Bumps the temporary control-plane-flow pin from 2d822557… to d8877ca0… across generated GitHub workflow wrappers (review apps, staging, cleanup, help) and the production promotion workflow’s upstream checkout and control_plane_flow_ref.

Docs in .controlplane/readme.md, .controlplane/shakacode-team.md, and .github/cpflow-help.md now describe that SHA as carrying merged-but-unreleased production promotion hardening plus the release-runner timeout fix (so release phases stop polling after the runner job finishes). CPFLOW_VERSION stays unset so jobs build cpflow from the pinned checkout.

Reviewed by Cursor Bugbot for commit 49879e9. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • Chores

    • Updated CI/CD workflow references to a short-lived upstream revision used for testing, improving release-runner behavior and timeouts across deployment pipelines.
  • Documentation

    • Revised control-plane guidance and CI automation docs to reflect the temporary workflow pinning approach and to advise leaving the CPFLOW_VERSION unset during the test window.

@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown

🚀 Quick Review App Commands

Welcome! Here are the commands you can use in this PR:
They require the repository to have cpflow review apps configured, including the CPLN_TOKEN_STAGING secret.

+review-app-deploy

Deploy your PR branch for testing.

+review-app-delete

Remove the review app when done.

+review-app-help

Show detailed instructions, environment setup, and configuration options.

Comment +review-app-help for full setup details.

@coderabbitai

coderabbitai Bot commented Jun 3, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

This PR repins the upstream shakacode/control-plane-flow commit reference to d8877ca0c9c1d88947f322903e4a4344641029ba across documentation and all cpflow GitHub Actions wrappers, preserving guidance to leave CPFLOW_VERSION unset while testing an immutable commit SHA.

Changes

Control Plane Flow Upstream Reference Update

Layer / File(s) Summary
Pinning guidance and documentation
.controlplane/readme.md, .controlplane/shakacode-team.md, .github/cpflow-help.md
Docs updated to reference the new testing commit SHA d8877ca0c9c1d88947f322903e4a4344641029ba and to keep the policy: release tags for steady-state, full commit SHAs only for short-lived testing with CPFLOW_VERSION unset.
Review app and staging workflow references
.github/workflows/cpflow-cleanup-stale-review-apps.yml, .github/workflows/cpflow-delete-review-app.yml, .github/workflows/cpflow-deploy-review-app.yml, .github/workflows/cpflow-deploy-staging.yml, .github/workflows/cpflow-help-command.yml, .github/workflows/cpflow-review-app-help.yml
All reusable workflow uses: references updated to point at the new pinned upstream commit SHA d8877ca0..., changing which upstream workflow revision executes.
Production promotion workflow references
.github/workflows/cpflow-promote-staging-to-production.yml
Updated the actions/checkout ref that fetches control-plane-flow and the control_plane_flow_ref input passed to cpflow-setup-environment to the new pinned commit SHA.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 A little rabbit hops the CI lane,
Pins a SHA to test the hardened chain.
Docs refreshed and workflows now aligned,
Short-lived testing, steady tags confined.
Hoppity happy, the pipelines hum along.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Pin cpflow workflows to runner wait fix' accurately describes the primary change: pinning GitHub workflows to an upstream commit containing a runner timeout/wait fix.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jg-codex/pin-runner-race-fix

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@claude

claude Bot commented Jun 3, 2026

Copy link
Copy Markdown

Code Review

Overview

This PR re-pins all generated cpflow GitHub Actions workflow refs and related documentation from upstream commit 2d8225572e to 2ffe4d0ab2 to pick up both the production promotion hardening and the release-runner polling timeout fix. The change is purely mechanical and low-risk: 10 files, all SHA replacements with matching doc updates.

What looks good

  • Consistency: All 10 files are updated with the same new SHA — no stragglers. The two locations in cpflow-promote-staging-to-production.yml (the actions/checkout ref: and the control_plane_flow_ref: input) are both updated correctly.
  • Full SHA pinning is the right security posture: Using a 40-character commit SHA instead of a mutable branch or tag prevents supply-chain attacks where a tag could be silently moved to a malicious commit. This is the GitHub Actions security best practice.
  • Documentation kept in sync: All three doc files (readme.md, shakacode-team.md, cpflow-help.md) now accurately describe the pin as covering both the promotion hardening and the timeout fix, and the CI automation guide link in cpflow-help.md is updated to point to the matching commit so readers see docs that match the running code.
  • PR description is thorough: Links to the failing CI run, the upstream fix PR, and the Control Plane task-completion timestamps make the regression easy to understand and verify later.

Suggestions

  1. Track the migration back to a release tag. The docs correctly say this pin is temporary and should be replaced with a release tag once the upstream PRs ship. Consider opening a follow-up issue (or adding a # TODO(issue-link) comment in one of the workflow files) so the temporary state does not quietly persist beyond its intended window.

  2. Verify the new SHA before merging. The upstream fix referenced in the PR body is Handle completed runner jobs before replicas appear control-plane-flow#361. Confirming that 2ffe4d0ab222585e47618ddbbfa0a7bee95dba73 is a commit on the default branch of shakacode/control-plane-flow that includes that merged PR would close the loop on correctness (a wrong SHA would silently fall back to a previous behavior or fail at runtime).

  3. No functional code changes means no new test coverage needed, but the verification steps in the PR body (bin/conductor-exec ruby -e '...' YAML.load_file..., bin/conductor-exec bin/test-cpflow-github-flow) are appropriate regression checks — confirming those passed before merging is sufficient.

Risk assessment

Low. No application code, secrets, or runtime behaviour changes. The only impact is which upstream cpflow commit GitHub Actions checks out when a CI job runs. The worst credible failure mode is a bad SHA causing a workflow to fail loudly at checkout — which is immediately visible and easily rolled back.

@greptile-apps

greptile-apps Bot commented Jun 3, 2026

Copy link
Copy Markdown

Greptile Summary

This PR advances the pinned upstream control-plane-flow commit SHA from 2d8225572edd6f54c83ba9c51bd2983546989e93 to 2ffe4d0ab222585e47618ddbbfa0a7bee95dba73 across all six GitHub workflow wrappers and three documentation files, picking up the release-runner timeout fix (upstream PR #361) that caused a staging deployment to stall at the polling step.

  • All workflow uses: references and the manual actions/checkout ref: + control_plane_flow_ref in the production-promotion workflow are updated to the new SHA — changes are consistent and complete across every file.
  • Documentation in .controlplane/readme.md, .controlplane/shakacode-team.md, and .github/cpflow-help.md is updated to reference the new SHA and clarify that the pin covers both the promotion hardening and the runner-timeout fix.
  • CPFLOW_VERSION remains intentionally unset so the workflows build cpflow from the pinned source rather than a released gem version.

Confidence Score: 5/5

Safe to merge — all changes are a mechanical SHA bump in workflow uses: references and documentation, with no logic modifications.

Every changed line is either a SHA substitution in a workflow uses: or checkout ref: field, or a documentation update describing the new pin. The new SHA picks up the upstream runner-wait fix that caused the previous staging deploy to time out. All six workflow files and both ref:/control_plane_flow_ref entries in the production-promotion workflow are updated to the same new SHA, so the change is internally consistent. No workflow logic, secrets handling, or permission scopes were touched.

No files require special attention. The production-promotion workflow has two SHA references (checkout ref: and control_plane_flow_ref input) and both are correctly updated to match.

Important Files Changed

Filename Overview
.github/workflows/cpflow-promote-staging-to-production.yml SHA bumped in both the actions/checkout ref: for the cpflow source and the control_plane_flow_ref input passed to the setup action — both references updated consistently.
.github/workflows/cpflow-deploy-staging.yml SHA bumped to 2ffe4d0 in the reusable workflow uses: reference — this is the most impacted workflow, as the prior timeout failure occurred during staging deployment.
.github/workflows/cpflow-deploy-review-app.yml SHA bumped to 2ffe4d0 in the reusable workflow uses: reference — mechanical update, no other changes.
.github/workflows/cpflow-cleanup-stale-review-apps.yml SHA bumped from 2d82255 to 2ffe4d0 in the reusable workflow uses: reference — mechanical update, no logic changes.
.github/workflows/cpflow-delete-review-app.yml SHA bumped to 2ffe4d0 in the reusable workflow uses: reference — mechanical update, no other changes.
.github/workflows/cpflow-help-command.yml SHA bumped to 2ffe4d0 in the reusable workflow uses: reference — mechanical update, no other changes.
.github/workflows/cpflow-review-app-help.yml SHA bumped to 2ffe4d0 in the reusable workflow uses: reference — mechanical update, no other changes.
.github/cpflow-help.md SHA in the CI automation guide link and in the pinning explanation updated to 2ffe4d0; prose expanded to mention the release-runner timeout fix.
.controlplane/readme.md SHA reference and explanatory text updated to reflect the new upstream commit and the addition of the release-runner timeout fix.
.controlplane/shakacode-team.md SHA reference and surrounding prose updated consistently with the rest of the docs to include the release-runner timeout fix context.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[GitHub Workflow Trigger] --> B{Workflow Type}
    B --> C[cpflow-deploy-staging]
    B --> D[cpflow-deploy-review-app]
    B --> E[cpflow-delete-review-app]
    B --> F[cpflow-cleanup-stale-review-apps]
    B --> G[cpflow-help-command]
    B --> H[cpflow-review-app-help]
    B --> I[cpflow-promote-staging-to-production]
    C -->|uses: @2ffe4d0| J[shakacode/control-plane-flow]
    D -->|uses: @2ffe4d0| J
    E -->|uses: @2ffe4d0| J
    F -->|uses: @2ffe4d0| J
    G -->|uses: @2ffe4d0| J
    H -->|uses: @2ffe4d0| J
    I -->|checkout ref: 2ffe4d0| J
    I -->|control_plane_flow_ref: @2ffe4d0| J
    J --> K[Runner wait fix included - PR 361 + promotion hardening]
Loading

Reviews (1): Last reviewed commit: "Pin cpflow workflows to runner wait fix" | Re-trigger Greptile

@justin808 justin808 force-pushed the jg-codex/pin-runner-race-fix branch from e122b52 to 49879e9 Compare June 3, 2026 09:38
@claude

claude Bot commented Jun 3, 2026

Copy link
Copy Markdown

Code Review

Summary: This is a mechanical ref bump of the pinned control-plane-flow commit SHA from 2d82255… to d8877ca… across 7 GitHub workflow files, plus documentation updates in 3 files explaining the new SHA covers both the production promotion hardening and the release-runner timeout fix.


What the PR does

  • Bumps the upstream control-plane-flow commit pin in all uses: entries (review-app deploy/delete/cleanup/help, staging deploy, help command, review-app-help)
  • Updates both the checkout ref: and the control_plane_flow_ref input in the production promotion workflow (these must stay in sync — and they do)
  • Updates .controlplane/readme.md, .controlplane/shakacode-team.md, and .github/cpflow-help.md to explain the new SHA carries the runner timeout fix in addition to the promotion hardening

Assessment

Correctness: The bump is consistent across all 7 workflow files. The production promotion workflow is the trickiest because it carries two SHA references (checkout ref: and control_plane_flow_ref input) — both are updated together correctly.

Security: Pinning to a full 40-character commit SHA is more tamper-resistant than a mutable branch ref, and is a GitHub-recommended practice for third-party actions. persist-credentials: false remains set on the control-plane-flow checkout. Secrets are passed via secrets: inheritance, not hardcoded. No regressions here.

Documentation: The three doc files now clearly describe the SHA as covering both promotion hardening and the release-runner timeout fix, with explicit guidance to move back to a release tag once upstream ships the changes.

Risk: Low. No application code, test code, or runtime configuration is touched. The only behavioral change is which upstream commit the CI jobs pull from, and the motivation (fixing a 30-minute runner-polling timeout) is well-evidenced by the linked CI run.

Minor notes

  • The temporary SHA strategy is explicitly acknowledged as short-lived (pending upstream release tag). A follow-up PR to switch back to a version tag once control-plane-flow cuts a release would complete the loop.
  • CPFLOW_VERSION intentionally stays unset — correct, since setting it alongside a SHA pin would cause the setup action's validation to fail.

Verdict: Approve. Changes are minimal, consistent, well-documented, and address a real CI failure with a properly scoped fix.

@justin808 justin808 merged commit 8038797 into master Jun 3, 2026
7 checks passed
@justin808 justin808 deleted the jg-codex/pin-runner-race-fix branch June 3, 2026 09:48
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown

✅ Review App Deleted

Review app for PR #761 is deleted

🎮 Control Plane Console
📋 View Workflow Logs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant